This invention relates to a method and system for producing from an initial resolution input pixel image data an increased resolution output image having smoothed edges on output devices such as inkjet or laser printers. More particularly, this invention relates to such a method and system that accommodates input pixel images that are gray scaled, which method and system preserve in the higher resolution output image the gray scale of the input image.
There is a large installed base of inkjet and laser printers having substantially equal vertical and horizontal resolutions of 300 dots per inch (dpi). Recently, higher resolution printers are providing superior print quality due to their ability to produce 600 dpi or higher resolution images. It would unduly burden the host computer that drives the higher resolution printers to require that it create 600 dpi pixel or higher resolution output data from 300 dpi documents, applications or image databases produced thereby. Not only would this require large amounts of memory in the host, but it also would reduce 600 dpi printer throughput or increase host processing time. It is desirable to take advantage of the advent of higher resolution printers in many print applications without paying a significant throughput penalty.
In order to preserve compatibility with lower resolution applications and databases, to take advantage of the higher resolution printers, and to maintain high throughput, it is desirable to perform any needed pixel image data processing at the destination printer rather than at the source computer. Thus, smart printer controllers that are capable of receiving 300 dpi image data from the computer may be used to drive either 300 dpi resolution printers (without conversion overhead) or 600 dpi (or higher) resolution printers (with minimal conversion overhead) to produce respectively lower and higher quality print results. Although a brute-force increase in the fundamental grid resolution does improve print quality, the improvement is not realized in a cost effective manner. Additionally, simply scaling the image resolution, e.g., from 300 dpi to 600 dpi, leaves undesirable jagged edges on text. These jagged edges are particularly objectionable in black-only print applications and in a black image datapath of a multicolor, e.g., cyan-magenta-black-yellow-black (CMYK), print application.
A method of pattern matching of a lower resolution image to generate a higher resolution image is described in U.S. Pat. No. 3,573,789, by Sharp et al., issued Apr. 6, 1971. U.S. Pat. No. 4,437,122 by Walsh, issued Mar. 13, 1984, describes a software implementation. U.S. Pat. No. 5,650,858 by Lund, issued Jul. 22, 1997, incorporated herein by reference in its entirety, describes hardware implementation systems that preserve gray scaled graphic images. These implementations are referred to collectively herein as TES, an acronym for xe2x80x9cThermal Inkjet Edge Smoothing.xe2x80x9d
As described in Lund, cited above, TES is performed, e.g., in printer hardware, firmware, or software, by mapping mxc3x97n dot matrix input data into mxe2x80x2xc3x97nxe2x80x2 dot matrix output data (where mxe2x80x2 is an integer multiple of m, where nxe2x80x2 is an integer multiple of n, and where at least one of mxe2x80x2 and nxe2x80x2 is greater than one) and processing the output data to effect edge smoothing via stored smoothing criteria, both the mapping and the processing being accomplished without affecting any gray scale patterns
As an example, assume m and nxc3x97300 dots per inch (defining a 300 dpi by 300 dpi input pixel image), and it is desired to print a 600 dpi by 600 dpi output pixel image. The method and system are applicable generally where m and n may be the same or different and where the integer resolution multipliers may be any positive integers (at least one of which is greater than one, in order to accomplish resolution multiplication).
The 300 dpi source data is converted to 600 dpi and enhanced. Lund""s TES system consists of a logic circuit performing rule logic equations. These equations define how individual 600 dpi dots are changed, if appropriate, from the 300 dpi source image. More specifically, for every dot in the 300 dpi source image, a window is created to look at its surrounding 80 neighbors in a 9xc3x979 cell. Each input dot is replaced by a 2xc3x972 dot pattern, effectively generating a 600 dpi image. Based on the binary signals defining the dot pattern, the logic circuit modifies the 2xc3x972 superpixel to remove jagged edges. Lund, cited above, describes algorithms for the implementation of TES formulated as boolean logic equations, flow diagrams, graphic templates, and hardware circuits.
Lund""s TES works by scaling image input data, smoothing by adding and deleting dots, then outputting to a printing device. Scaling is typically performed by special hardware in the printer just before printing. No extra resolution is required in the application, data communications, or printer input buffer, but better quality output is produced. TES adjusts only dot placement, but not dot size. It can move dots on a grid finer than the input pixel resolution, and can add or remove dots as required. TES smoothes edges by reducing the step size and increasing the number of steps of ragged line edges. It preserves stroke weights of text and causes minimal changes to dithered halftone images.
Halftone images are created, in one example, by using a variable size pixel at a lower resolution. Importantly, TES does not change the density of these halftone dots. If it is determined that the target pixel is part of a halftoned image, the corresponding superpixel produced at the output for printing preserves the gray scale within the original lower resolution input pixel image without smoothing.
MultiLevel Printing (hereinafter designated as MLP) is a technology that improves color print quality not by increasing dots-per-inch but by reducing the ink drop size to place more dots in a {fraction (1/300)}th inch pixel. This increases the number of color levels per pixel, yielding better color print quality without the data overhead of moving to a higher printer resolution. Whereas a binary pixel has two density levels ON or OFF only, a MLP pixel has more than two levels, for example four density levels (two bits) such as OFF, LIGHT, MEDIUM, DARK. This reduces the time needed to print the document and the need for more powerful and costly hardware. It basically halves the ink drop volume, requiring two passes of a print head to fully saturate a given {fraction (1/300)}th inch pixel. Typically this does not result in a throughput penalty, since normal color printing modes typically already require two passes. The basic principles underlying MLP are described in U.S. Pat. No. 4,672,432 by Sakurada et al., issued Jun. 9, 1987, incorporated herein by reference in its entirety.
MLP provides better color matching, more uniform area fills, lighter secondary colors, better dithering in half-tones, more flexibility in ink dye balance, and a smaller amount of input data when compared to binary data. Using half the ink drop volume enables a printer to deliver 0-3 drops of each ink color per pixel in a normal paper mode, allowing 64 three-color shades per pixel, compared to 8 color shades for binary three-color printing. This enables the printer to halftone with approximately 64 shades instead of 8.
300 dpi MLP input data are typically used in instances where throughput is more important than achieving maximum print quality. The smaller drop volume provides similar detail with less granularity than binary 600 dpi. Even higher resolution detail is supported through 600 dpi MLP data.
In inkjet printing, conventional print heads deliver black ink drops having a weight of, for example, approximately 32 ng (nanograms). This drop size is appropriate to fill a single 600xc3x97600 dpi dot. However, at a 1200xc3x97600 dpi drop density, 32 ng ink drops apply twice as much ink as is required for a dot. It is desirable, therefore, to reduce the average delivered ink drop weight for some output image resolutions. The basic principles of a technology for this purpose, known as xe2x80x9cbitstripping,xe2x80x9d are described in U.S. Pat. No. 5,270,728 by M. D. Lund and S. O. Miller, issued Dec. 14, 1993, incorporated herein by reference in its entirety. Some print heads deliver 16 ng or smaller ink drops, so do not deliver excess ink at 1200xc3x97600 dpi density and thus do not require bitstripping.
Another method for reducing the volume of ink applied to high-density print regions involves selectively depleting the ink delivered to certain pixels in these regions. The basic principles of this xe2x80x9cdepletionxe2x80x9d technology are described in U.S. Pat. No. 5,706,414 by Pritchard, issued Jan. 6, 1998, incorporated herein by reference in its entirety.
It is desirable in the art to provide a method and system for converting digital input image data of a variety of resolutions to output image data of a variety of higher resolutions, while simultaneously preserving gray scaling and smoothing text edges. It is further desirable to perform these operations at an output device, preferably in hardware, such that the image data throughput of the system is maximized.
Multiple algorithms are applied to expand input image data of a variety of lower resolutions to output image data of a variety of higher resolutions with enhanced text quality, particularly in the black datapath controlling an output device such as an inkjet or laser printer. Enhanced performance for 600xc3x97600 or 1200xc3x97600 dots per inch (dpi) output resolution is provided for a variety of input data resolutions, including 300xc3x97300, 600xc3x97600, and 1200xc3x97600 dpi. The techniques described herein apply to other resolutions as well.
Enhancement techniques include edge smoothing, bit stripping for large drop weight pens, and drop-weight based ink depletion. Embodiments of the techniques can incorporate the prior bitstripping, depletion, TES, and MLP technologies (see M. D. Lund and S. O. Miller, U.S. Pat. No. 5,270,728; Pritchard, U.S. Pat. No. 5,706,414; Lund, U.S. Pat. No. 5,650,858; and Sakurada et al., U.S. Pat. No. 4,672,432, cited above) to convert 300xc3x97300 dpi input resolution image data to 600xc3x97600 dpi output resolution image data (i.e., symmetric resolution doubling). Embodiments of the invention provide algorithms that convert 600xc3x97600 dpi input resolution data to 1200xc3x97600 dpi output resolution image data or 300xc3x97300 to 600xc3x97300 dpi resolution (i.e., asymmetric 2:1 ratio resolution conversion along mutually perpendicular axes), including text edge smoothing, while causing minimal change to halftoned data within images.
Each pixel has an associated pixel density, and the input pixel data can have an associated gray scale of densities, which can be simple binary levels (e.g., ON, OFF) or multibit gray scale levels, such as two bit levels OFF, LIGHT, MEDIUM, DARK. In accordance with an embodiment of the invention, a resolution expansion method includes: selecting a given pixel of an input pixel image and defining a window that includes the given pixel and a set of immediately neighboring pixels; determining whether any pixel within the window contains gray scale density data; if so, then expanding the resolution of the given pixel within the defined window to produce a gray scaled output pixel image at the expanded resolution; if not, then mapping the given pixel into a predefined plural-pixel of the expanded resolution by performing logical equations on the binary pattern within the defined window and, based on the results of the logic equations, substituting for the given pixel an expanded resolution predefined plural-pixel. This produces an output plural-pixel of expanded resolution, while preserving any gray scale of the given input pixel. In some embodiments, this expansion method is applied to produce output image data of asymmetric resolution from input image data of symmetric resolution.
A method of depleting the pixel density of a selected output pixel involves comparing logically with predetermined selection criteria, including: alignment of the selected output pixel with a preselected position in a two-dimensional depletion array tiled logically across the image plane; and determining that the selected output pixel and its four neighboring output pixels have a preselected pixel density. In some embodiments, the preselected pixel density is DARK. In some embodiments, if the selected output pixel has a gray scale level, its pixel density is depleted by reducing its gray scale density level. In asymmetric resolutions, the selected output pixel and four neighboring output pixels are all contained within a corresponding selected input pixel and three input pixels immediately adjacent the selected input pixel.
Depletion (pixel thinning) reduces by approximately a factor of two the average pixel density of an output pixel image, which would otherwise deliver excessive ink to a printer. A pixel thinning method includes: scanning a first row of given pixels of an output pixel image; determining if the first row contains a series of consecutive pixels having dark pixel density; if so, then turning off alternate dark density pixels in the series, reducing the pixel density on average by approximately one-half; scanning the next row of given pixels; and selectively turning on pixels within the series, thereby preserving edge definition and filling preselected interior spaces within dark pixel density images.
Some embodiments include unidirectional bitstripping that preserves 1200 dpi edges while applying output pixels at only 600 dpi from 1200 dpi resolution output image data. Some embodiments include drop-weight based depletion to adjust the average ink flux to 32 ng per {fraction (1/600)}th inch cell, thereby preventing excess ink application at high output resolutions, e.g., 1200xc3x97600 dpi. In various embodiments, the above operations are performed in hardware modules and/or performed cooperatively as an integrated process to meet system throughput requirements. Some embodiments provide a plurality of substantially identical processing modules configured to process multiple given pixels substantially concurrently.